package com.qdxwx.models.course;

import com.qdxwx.models.teacher.Teacher;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 课程综合信息
 */
public class CourseDTO extends Course {

    private static final long serialVersionUID = -6214029046754738934L;

    //这几个需要处理的
    private List<Teacher> teacherList;//该课程 下的老师list
    private List<CourseDTO> courseList;//套餐下的 课程list


    private int studyPercent;//课程学习进度百分比
    private CourseStudyHistory courseStudyHistory;//学习记录

    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime nearestLiveBeginTime;//下次直播开始时间
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime nearestLiveEndTime;//下次直播结束时间

	private Integer albumId;//所属专集ID
	private Long orderNum; // 排序值

    public List<Teacher> getTeacherList() {
        return teacherList;
    }

    public void setTeacherList(List<Teacher> teacherList) {
        this.teacherList = teacherList;
    }

    public List<CourseDTO> getCourseList() {
        return courseList;
    }

    public void setCourseList(List<CourseDTO> courseList) {
        this.courseList = courseList;
    }

    public int getStudyPercent() {
        return studyPercent;
    }

    public void setStudyPercent(int studyPercent) {
        this.studyPercent = studyPercent;
    }

    public CourseStudyHistory getCourseStudyHistory() {
        return courseStudyHistory;
    }

    public void setCourseStudyHistory(CourseStudyHistory courseStudyHistory) {
        this.courseStudyHistory = courseStudyHistory;
    }

    public LocalDateTime getNearestLiveBeginTime() {
        return nearestLiveBeginTime;
    }

    public void setNearestLiveBeginTime(LocalDateTime nearestLiveBeginTime) {
        this.nearestLiveBeginTime = nearestLiveBeginTime;
    }

    public LocalDateTime getNearestLiveEndTime() {
        return nearestLiveEndTime;
    }

    public void setNearestLiveEndTime(LocalDateTime nearestLiveEndTime) {
        this.nearestLiveEndTime = nearestLiveEndTime;
    }

    public Integer getAlbumId() {
        return this.albumId;
    }

    public void setAlbumId(Integer albumId) {
        this.albumId = albumId;
    }

    public Long getOrderNum() {
        return this.orderNum;
    }

    public void setOrderNum(Long orderNum) {
        this.orderNum = orderNum;
    }

    @Override
    public String toString() {
        return "CourseDTO{" +
                "nearestLiveBeginTime=" + nearestLiveBeginTime +
                ", nearestLiveEndTime=" + nearestLiveEndTime +
                ", albumId=" + albumId +
                ", orderNum=" + orderNum +
                '}';
    }
}
